package com.yunfeisoft.controller.search;

import com.applet.utils.Page;
import com.yunfeisoft.business.model.*;

import java.util.List;
import java.util.Map;

/**
 * 移动端查询接口，提供移动端商品、广告、品牌、秒杀等信息的查询
 * 提供该接口的原因是针对并发量大的时候走es、redis查询等、并发量小的可走数据库查询
 * 针对以上两种查询方式分别提供不同的实现
 */
public interface SearchManager {

    /**
     * 查询首页广告列表
     *
     * @param params 查询条件
     * @return
     */
    public List<SmsHomeAdvertise> queryAdvertList(Map<String, Object> params);

    /**
     * 查询商品列表
     *
     * @param params 查询条件
     * @return
     */
    public List<PmsProduct> queryProductList(Map<String, Object> params);

    /**
     * 分页查询商品列表
     *
     * @param params 查询条件
     * @return
     */
    public Page<PmsProduct> queryProductPage(Map<String, Object> params);

    /**
     * 分页查询秒杀列表
     *
     * @param params
     * @return
     */
    public Page<SmsFlashPromotion> queryFlashPromotionList(Map<String, Object> params);

    //.....需要的接口可以继续添加

    /**
     * 分页查询新鲜好物
     * @param params
     * @return
     */
    public Page<SmsHomeNewProduct> queryHomeNewProduct(Map<String, Object> params);

    /**
     * 查询首页信息
     * @return
     */
    public Map<String, Object> queryIndex();

    /**
     * 查询商品详情
     * @param productId
     * @return
     */
    public Map<String, Object> queryProductDetail(String productId);

    /**
     * 根据商品id查询商品详情
     * @param productId
     * @return
     */
    String queryProductContent(String productId);

    /**
     * 分页查询专题列表
     * @param params
     * @return
     */
    Page<CmsSubject> queryCmsSubjectList(Map<String, Object> params);
}
